﻿#define  _CRT_SECURE_NO_WARNINGS

//找出字符串的第一个匹配项的下标
//题目：
//给你两个字符串 haystack 和 needle ，请你在 haystack 字符串中找出 needle 字符串的
//第一个匹配项的下标（下标从 0 开始）。如果 needle 不是 haystack 的一部分，则返回  -1 。


#include <stdio.h>
#include <string.h>

/*
int strStr(char* haystack, char* needle)
{
    char* s1 = NULL;
    char* s2 = NULL;
    char* cp = haystack;//用来保存比较的初始位置
    while (*cp != '\0')
    {
        s1 = cp;
        s2 = needle;
        while (*s1 == *s2)
        {
            s1++;
            s2++;
            if (*s2 == '\0')
            {
                return (int)(cp - haystack);//指针减指针
            }
        }

        cp++;
    }
    //跳出循环，则说明haystack已经遍历完了，仍然无法找到needle
    return -1;
}
*/

int strStr(char* haystack, char* needle)
{
    //库函数strstr：若找得到，则返回字符串str2在字符串str1中第⼀次出现的位置的地址
    //若找不到，则返回空指针NULL
    //直接调用库函数strstr
    char* ret = strstr(haystack, needle);
    if (ret != NULL)
    {
        return (int)(ret - haystack);
    }
    return -1;

}

int main() 
{
    char haystack[1000] = { 0 };
    char needle[1000] = { 0 };
    while (scanf("%s%s", haystack, needle) != EOF)
    {
        int ret = strStr(haystack, needle);
        printf("%d\n", ret);
    }
	return 0;
}


